﻿using Sasa.QualityTools.CodeAnalysis.Core;
using Sasa.QualityTools.CodeAnalysis.Core.VisualStudio;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;

namespace Sasa.QualityTools.CodeAnalysis.Cli
{
    public class Solution : ISolution
    {
        public string ConfigurationDir { get; private set; }

        public string ConfigurationPath { get; private set; }

        public string FxCopDictionaryPath { get; private set; }


        public Solution(string solutionDir)
        {
            ConfigurationDir = Path.Combine(solutionDir, Constants.CodeAnalysisConfigurationDirName);
            ConfigurationPath = Path.Combine(ConfigurationDir, Constants.CodeAnalysisConfigurationFileName);
            FxCopDictionaryPath = Path.Combine(ConfigurationDir, Constants.FxCopDictionaryFileName);
        }


        #region Members that need not be implemented.

        [SuppressMessage("Microsoft.Design", "CA1065")]
        public IProject CurrentProject
        {
            get { throw new NotImplementedException(); }
        }

        public IEnumerable<IProject> SelectedProjects
        {
            get { throw new NotImplementedException(); }
        }

        [SuppressMessage("Microsoft.Design", "CA1065")]
        public bool HasFxCopProjectFile
        {
            get { throw new NotImplementedException(); }
        }

        [SuppressMessage("Microsoft.Design", "CA1065")]
        public string FxCopProjectPath
        {
            get { throw new NotImplementedException(); }
        }

        public bool Build()
        {
            throw new NotImplementedException();
        }

        public void Open(string path, int? line)
        {
            throw new NotImplementedException();
        }

        public IProject AddSolutionFolder(string name)
        {
            throw new NotImplementedException();
        }

        public IProject FindProjectByUniqueName(string uniqueName)
        {
            throw new NotImplementedException();
        }

        public IEnumerable<IProject> GetBuildTargetProjects(bool onlyShouldBuildProject)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
